[名家名著22]
先求有,再求好,後求美
KentBeck的測試驅動開發,帶領你快速突破軟體開發的重重難關!
讓你不再糾結、不再徬徨、不再浪費寶貴的時間!
譯者特別得到作者KentBeck的授權,
將範例變更的歷程,放到GitHub上公開呈現每一個步驟的演進,
使讀者能夠搭配書中解說以理解TDD開發軟體的精髓!
★好評推薦★
想知道該如何對複雜的企業級需求化繁為簡嗎?如何能專注且輕鬆、不浪費每一分力氣地堆砌出最剛好的設計?該如何可靠穩定地建構出高易用性的API?如何隨心所欲地控制開發推進的步伐大小?如何透過持續的反饋進行實驗與學習,進而持續改善產品品質?如何將需求、驗收、測試、開發、設計各環節一以貫之,無多餘的一絲浪費?這些問題的答案,以及現代敏捷開發的基礎與核心,都在ExtremeProgramming與TDD祖師爺KentBeck這本經典代表鉅作中。
連任九屆微軟最有價值專家陳仕傑(91)
「簡潔且執行正確的程式碼(cleancodethatworks)」,這似乎是許多程式開發難題所存在的矛盾。而測試驅動開發(Test-DrivenDevelopment,TDD)則以矛盾、違反直覺的方式來解決這樣的矛盾問題:在你開始撰寫產品程式碼之前,先寫程式測試它。
這是什麼創新的想法嗎?完全不是。自從有電腦以來,程式開發人員就已經會在撰寫之前,先確認其輸入與輸出的結果。TDD只是採用這個古老的想法,並將它與現代程式語言和開發環境相互結合,端出一道滋味美妙的佳餚以滿足你對「簡潔且執行正確的程式碼」的渴望。
開發人員每天都在面對複雜的開發難題,然而最佳解決方案不可能隨時都準備好來派上用場。但屢見不鮮的是,這樣艱辛的專案往往面臨巨大的壓力,並隨之而來產生大量且糟糕的程式碼。為了獲得征服這樣看似艱鉅任務所需要力量與勇氣,開發人員應該了解一下TDD,這是一系列經過驗證可行的技術,能用來幫助開發人員同時設計出簡單好懂的程式,以及讓我們充滿信心的測試程式。
透過自動測試來驅動開發產品程式碼,然後消除程式中存在的重複,可使任何開發人員在面對無論多複雜的需求,都能寫出可靠、無錯誤的程式碼。除此之外,TDD的過程還能鼓勵開發人員更快速地學習、更清楚地溝通,並且從過程中尋求有建設性的反饋。
你將從本書學會:
•要解決複雜的任務,先從簡單開始,然後逐步發展到處理更複雜的情況。
•在開始寫產品程式碼之前,先寫自動化測試程式。
•藉由每次的重構步驟,一次引入一個設計的決定,形成演進式的設計。
•能替那些複雜的邏輯(包含反射跟例外)撰寫對應的測試。
•使用一些模式來決定該寫哪些測試。
•使用xUnit來撰寫測試,xUnit是許多開發人員所使用的測試工具中的核心架構。
這本書透過2個以TDD方式開發的專案範例來貫穿全場,藉此來解說開發人員能用來輕鬆且顯著提高工作品質的技術。這些範例遵循TDD與重構的一些模式。透過敏捷方法與快速開發策略能帶來的價值,TDD一定能激勵讀者去擁抱這些強大但還未被充分發揮巨大價值的技術。
作者KentBeck是軟體業界中最具有創意且廣受好評的領導者之一。他熱愛採用模式、極限程式設計與測試驅動開發,目前隷屬於ThreeRivers學院。他是一位超級銷暢作家,作品有《ExtremeProgrammingExplained》(Addison-Wesley,2000)以及《PlanningExtremeProgramming》(與MartinFowler合著,Addison-Wesley,2001)並為《Refactoring》(MartinFowler,Addison-Wesley,1999)一書之貢獻者。
本書範例檔:(本範例檔以GitHub方式呈現已透過原作者授權)
https://tdd.best/book/tdd-by-example